% extracts the data from the excell files, converts the values of the
% labels from pixeis to coordinates (like worm position), normalizes the
% position in relation to a defined position for the OP stimuli so that all
% worms have the stimulus torwards they are heading in the same place
% OP Stimulus x=17500 y=12500 PA stimulus x=7500 y=12500

%% extra functions 
%convertx
%converty

%%
% DON'T FORGET TO CHANGE NUMBER OF WORMS (19) FILES IN THE END (line 80) AND SAVE
% ANALYZIS DESIGN FOR OP STIMULI (RIGHT SIDE OF IMAGE);
%%
% select the excell file from where to extract the data
[filename, pathname] = uigetfile({'*.m';'*.slx';'*.mat';'*.*'},'File Selector');

% stores the data from the excell file 
store = cell (1,30,1);

number = xlsread (filename,1);
time = xlsread (filename ,2);
xpos = xlsread (filename,3);
ypos = xlsread (filename,4);
[num, text, raw] = xlsread (filename,6);% to extract both numeric and string data
reversals = raw (:,1);
[num1, text1, raw1] = xlsread (filename,7);
omegas = raw1 (:,1);
label_x = xlsread (filename,10);
label_y = xlsread (filename,11);
time_to_arrive = xlsread (filename,12);
conversion = xlsread (filename,14);

%% transform the value of the labels from pixeis to coordinates and store on
%the cell array
xlab = convertx (label_x,conversion);
ylab = converty (label_y, conversion);

 %% find the parameters to align to the PA stimuli
 %set the same value for the position of the PA stimuli - I decided these
 %values in an arbitrary way to fit well in the graph
 OPx = 17500;
 OPy = 12500;

 %find the distance between where the stimulus is in my video and the specificed PA stimuli
 xdistOP = OPx - xlab;
 ydistOP = OPy - ylab;

 %% correct the values of x and y torwards the new stimulus values
 n = size (xpos, 1);
 horfinal = [];%for x values horizontally
 for j = 1:n;
     hornorm = xpos (j) + xdistOP;
     a = hornorm;
     horfinal = [horfinal; a];
 end


 verfinal = [];%for y values vertically
 for j = 1:n;
     vernorm = ypos (j) + ydistOP;
     b = vernorm;
     verfinal = [verfinal; b];
 end

store {1,1,1} = number;
store {1,2,1} = time;
store {1,3,1} = horfinal;
store {1,4,1} = verfinal;
store {1,5,1} = OPx;
store {1,6,1} = OPy;
store {1,7,1} = time_to_arrive;
store {1,8,1} = reversals;
store {1,16,1} = omegas;
   

% save the data in the designated file
MT_STM14_OP_vs_PA_OP5_choice_OP_reversals_F1 = store;

